
package com.trial.area.config.service;

import java.util.List;
import java.util.UUID;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.trial.area.config.ConfigUtils;
import com.trial.area.config.dao.ConfigInfoDao;
import com.trial.area.config.param.ConfigInfoParam;
import com.trial.area.config.vo.ConfigInfoVO;

/**
 * 配置信息Service实现类
 *
 * @author 朱国军
 * @version 2015年12月21日 朱国军
 */
@Service
public class ConfigInfoService {

    @Autowired
    private ConfigInfoDao configInfoDao;
    
    /**
     * 更新或新增配置项信息
     *
     * @param entity 配置想信息
     * @return 影响条数
     */
    @Transactional(rollbackFor = Exception.class)
    public Integer update(ConfigInfoVO entity) {
        Integer successCount = 0;
        if (StringUtils.isBlank(entity.getConfigId())) {
            entity.setConfigId(UUID.randomUUID().toString());
            successCount = configInfoDao.insert(entity);
        } else {
            successCount = configInfoDao.update(entity);
        }
        ConfigUtils.updateConfigByKey(entity.getConfigKey(), entity.getConfigValue());

        return successCount;
    }

    public ConfigInfoVO findById(String id) {
        return configInfoDao.findById(id);
    }

    public List<ConfigInfoVO> queryByPage(ConfigInfoParam param) {
        return configInfoDao.queryByPage(param);
    }

    @Transactional(rollbackFor = Exception.class)
    public void delete(String id) {
        configInfoDao.delete(id);
    }
}
